package ecritureFichier;

import java.io.*;
import java.util.List;

import analyseEvolutionPlateau.ResultatAnalyse;

/**
 * class ayant pour but d'ecrire une liste de resultat sous forme d'un fichier
 * html.
 * 
 */
public class EcritureFichierResultatHTML implements EcritureFichierResultat {

	public EcritureFichierResultatHTML(){
		
	}
	
	/**
	 * imprime une liste de resultat d'analyse asymptotique dans un fichier html
	 * "result.html" (dont le contenu est ecrasé) 
	 * 
	 * @param resultats
	 *            listes des résultats à ecrire.
	 * @see ResultatAnalyse
	 */
	public void EcrireFichierHTML(List<ResultatAnalyse> resultats) {

		try {
			FileWriter fw = new FileWriter("result.html", false);
			BufferedWriter bw = new BufferedWriter(fw);
			PrintWriter pw = new PrintWriter(bw);
			ecrireFichierEnTete(pw);
			pw.println("<TABLE>");
			pw.println("<CAPTION> Tableau resultat analyse: </CAPTION>");
			pw.println("<TR>");
			pw.print("<TH> nom du fichier </TH> ");
			pw.print("<TH> etat </TH> ");
			pw.print("<TH> queue </TH> ");
			pw.print("<TH> periode </TH> ");
			pw.print("<TH> translation y </TH> ");
			pw.print("<TH> translation x </TH> ");
			pw.print("</TR>");

			for (ResultatAnalyse r : resultats) {
				pw.println("<TR>");
				String nom = r.getNom();
				pw.print("<TD>" + nom + "</TD>");
				String[] tab = r.tableauResultat();
				for (String s : tab) {
					pw.print("<TD>" + s + "</TD>");
				}
				pw.print("</TR>");
			}

			pw.println("</TABLE>");
			pw.println("</body>" + "\n" + "</head>");
			pw.close();
		} catch (IOException e) {
			System.err
					.println("Warning : the writing of the HTML file has failed");
		}
	}

	/**
	 * imptime l'en tête d'un fichier html
	 * @param pw
	 */
	private static void ecrireFichierEnTete(PrintWriter pw) {
		pw.println("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">"
				+ "\n"
				+ "<html lang=\"fr\" xml:lang=\"fr\" xmlns=\"http://www.w3.org/1999/xhtml\"><head>"
				+ "\n"
				+ "<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\" />"
				+ "\n"
				+ "<title>Resultat Projet</title>"
				+ "\n"
				+ "</head>"
				+ "\n" + "<body>" + "\n");
	}

}
